@isTest
private class UpsertOrderRESTTest {
    static testMethod void testMethod1() {
        TestUtils.createUsers();
        User appMan = [SELECT Id,Name FROM User WHERE Name='用户1' LIMIT 1];
		
		//创建客户
		Account acc1 = TestUtils.createAccount();
		acc1.Name = '四川省sc迈克实业有限公司';
		acc1.AccountNumber = 'AN.0001';
		insert acc1;
		Account acc2 = TestUtils.createAccount();
		acc2.Name = '成都市sc第一人民医院';
		acc2.AccountNumber = 'AN.0002';
		insert acc2;
		//创建产品
		Product__c pro1 = TestUtils.createProduct();
		pro1.Name = '尿有形成份检测稀释液UPS-1';
		pro1.NCCode__c = 'P-0001';
        pro1.sealflag__c = 'N';
		insert pro1;

		Product__c pro2 = TestUtils.createProduct();
		pro2.Name = '尿有形成份检测稀释液UPS-2';
		pro2.NCCode__c = 'P-0002';
        pro2.sealflag__c = 'N';
		insert pro2;

		Product__c pro3 = TestUtils.createProduct();
		pro3.Name = '尿有形成份检测稀释液UPS-3';
		pro3.NCCode__c = 'P-0003';
        pro3.sealflag__c = 'N';
		insert pro3;
		//创建联系人
        Contact con = TestUtils.createContact();
        con.MobilePhone = '13588885555';
        con.Post__c = '科长/主任';
		//创建合同
        Contract__c ctr = TestUtils.createContract();
        ctr.Account__r = acc1;
        insert ctr;
		//创建订单
        Order__c ord = TestUtils.createOrder();
        ord.Account__c = acc1.Id;
        ord.Contact__c = con.Id;
        ord.Contract__c = ctr.Id;
        ord.Name = 'OP.2017010001';
        ord.NCsale_hid__c = '1';
        insert ord;
        //创建订单明细 
        Order_Product__c op1 = new Order_Product__c();
        op1.NCsalecode__c = 'OP.2017010001';
        op1.Order__c = ord.Id;
        op1.Original_Price__c = 21;
        op1.Quote_Price__c = 25;
        op1.Product__c = pro1.Id;
        op1.NCsale_bid__c = '1';
        insert op1;
        Order_Product__c op2 = new Order_Product__c();
        op2.NCsalecode__c = 'OP.2017010001';
        op2.Order__c = ord.Id;
        op2.Original_Price__c = 43;
        op2.Quote_Price__c = 56;
        op2.Product__c = pro2.Id;
        op2.NCsale_bid__c = '2';
        insert op2;
        Order_Product__c op3 = new Order_Product__c();
        op3.NCsalecode__c = 'OP.2017010001';
        op3.Order__c = ord.Id;
        op3.Original_Price__c = 11;
        op3.Quote_Price__c = 55;
        op3.Product__c = pro3.Id;
        op3.NCsale_bid__c = '3';
        insert op3;
        

		Test.startTest();
		//测试
		List<UpsertOrderREST.OrderRestArgs> args = new List<UpsertOrderREST.OrderRestArgs>();
		UpsertOrderREST.upsertOrder(args);

		UpsertOrderREST.OrderRestArgs arg1 = new UpsertOrderREST.OrderRestArgs();
		arg1.salecode = 'OP.2017010001';//销售订单号
        arg1.sale_hid = '1';//销售订单主表ID
    	arg1.corpcode = 'CP-001';//公司编码
        arg1.corpname = '四川省迈克实业有限公司';//公司名称
        arg1.custcode = 'AN.0001';//客户编码
        arg1.custname = '四川省迈克实业有限公司';//客户名称
    	arg1.currtypename = 'RMB';//币种
    	arg1.saledate = '2017-01-01';//订单日期
    	arg1.deptname = '销售一部';//部门
        arg1.ywyname = '刘三少';//业务员
        arg1.shaddr = '成都市二环中二段55号';//收货地址
        arg1.kpdw = '终端客户';//开票单位
        arg1.skxy = '货到付款';//收款协议
        arg1.zdkh = '终端客户';//终端客户
    	//从表数据
        arg1.sale_bid = '1';//销售订单从表ID
        arg1.invcode = 'P-0001';//存货编码
        arg1.invname = '尿有形成份检测稀释液UPS-1';//存货名称
        arg1.invdm = 'P98778';//存货代码
        arg1.pzwh = 'kkdkjk';//批准文号
        arg1.nnum = '854';//数量
        arg1.noriginalcurtaxprice = '256';//原币含税单价
        arg1.noriginalcursummny = '52451';//原币价税合计
        arg1.noriginalcurprice = '224';//原币无税单价
        arg1.noriginalcurmny = '25754';//原币无税金额
		arg1.ts = '2017-01-01 15:00:00';
		args.add(arg1);
		
		UpsertOrderREST.OrderRestArgs arg2 = new UpsertOrderREST.OrderRestArgs();
		arg2.salecode = 'OP.2017010001';//销售订单号
        arg2.sale_hid = '1';//销售订单主表ID
    	arg2.corpcode = 'CP-001';//公司编码
        arg2.corpname = '四川省迈克实业有限公司';//公司名称
        arg2.custcode = 'AN.0001';//客户编码
        arg2.custname = '四川省迈克实业有限公司';//客户名称
    	arg2.currtypename = 'RMB';//币种
    	arg2.saledate = '2017-01-01';//订单日期
    	arg2.deptname = '销售一部';//部门
        arg2.ywyname = '刘三少';//业务员
        arg2.shaddr = '成都市二环中二段55号';//收货地址
        arg2.kpdw = '终端客户';//开票单位
        arg2.skxy = '货到付款';//收款协议
        arg2.zdkh = '终端客户';//终端客户
    	//从表数据
        arg2.sale_bid = '2';//销售订单从表ID
        arg2.invcode = 'P-0002';//存货编码
        arg2.invname = '尿有形成份检测稀释液UPS-2';//存货名称
        arg2.invdm = 'P98779';//存货代码
        arg2.pzwh = 'kkdkjk';//批准文号
        arg2.nnum = '884';//数量
        arg2.noriginalcurtaxprice = '256';//原币含税单价
        arg2.noriginalcursummny = '52451';//原币价税合计
        arg2.noriginalcurprice = '224';//原币无税单价
        arg2.noriginalcurmny = '25754';//原币无税金额
		arg2.ts = '2017-01-01 15:55:23';
		args.add(arg2);
		
		UpsertOrderREST.upsertOrder(args);
		
		UpsertOrderREST.OrderRestArgs arg3 = new UpsertOrderREST.OrderRestArgs();
		arg3.salecode = 'OP.2017010001';//销售订单号
        arg3.sale_hid = '1';//销售订单主表ID
    	arg3.corpcode = 'CP-001';//公司编码
        arg3.corpname = '四川省迈克实业有限公司';//公司名称
        arg3.custcode = 'AN.0001';//客户编码
        arg3.custname = '四川省迈克实业有限公司';//客户名称
    	arg3.currtypename = 'RMB';//币种
    	arg3.saledate = '2017-01-01';//订单日期
    	arg3.deptname = '销售一部';//部门
        arg3.ywyname = '刘三少';//业务员
        arg3.shaddr = '成都市二环中二段55号';//收货地址
        arg3.kpdw = '终端客户';//开票单位
        arg3.skxy = '货到付款';//收款协议
        arg3.zdkh = '终端客户';//终端客户
    	//从表数据
        arg3.sale_bid = '3';//销售订单从表ID
        arg3.invcode = 'P-0003';//存货编码
        arg3.invname = '尿有形成份检测稀释液UPS-3';//存货名称
        arg3.invdm = 'P98767';//存货代码
        arg3.pzwh = 'terer';//批准文号
        arg3.nnum = '334';//数量
        arg3.noriginalcurtaxprice = '256';//原币含税单价
        arg3.noriginalcursummny = '52451';//原币价税合计
        arg3.noriginalcurprice = '224';//原币无税单价
        arg3.noriginalcurmny = '25754';//原币无税金额
		arg3.ts = '2017-01-01 14:32:23';
		args.add(arg3);

		UpsertOrderREST.OrderRestArgs arg4 = new UpsertOrderREST.OrderRestArgs();
		arg4.salecode = 'OH-2017010002';//销售订单号
        arg4.sale_hid = '2';//销售订单主表ID
    	arg4.corpcode = 'CP-002';//公司编码
        arg4.corpname = '成都市第一人民医院';//公司名称
        arg4.custcode = 'AN.0002';//客户编码
        arg4.custname = '成都市第一人民医院';//客户名称
    	arg4.currtypename = 'RMB';//币种
    	arg4.saledate = '2017-01-22';//订单日期
    	arg4.deptname = '销售二部';//部门
        arg4.ywyname = '李四东';//业务员
        arg4.shaddr = '成都市二环中二段66号';//收货地址
        arg4.kpdw = '终端客户';//开票单位
        arg4.skxy = '货到付款';//收款协议
        arg4.zdkh = '终端客户';//终端客户
    	//从表数据
        arg4.sale_bid = '4';//销售订单从表ID
        arg4.invcode = 'P-0001';//存货编码
        arg4.invname = '尿有形成份检测稀释液UPS-1';//存货名称
        arg4.invdm = 'P98734';//存货代码
        arg4.pzwh = 'gfff';//批准文号
        arg4.nnum = '644';//数量
        arg4.noriginalcurtaxprice = '256';//原币含税单价
        arg4.noriginalcursummny = '52451';//原币价税合计
        arg4.noriginalcurprice = '224';//原币无税单价
        arg4.noriginalcurmny = '25754';//原币无税金额
		arg4.ts = '2017-01-01 14:32:23';
		args.add(arg4);
		
		UpsertOrderREST.upsertOrder(args);

		UpsertOrderREST.OrderRestArgs arg5 = new UpsertOrderREST.OrderRestArgs();
		arg5.salecode = 'OH-2017010002-dssfdsdsd-sdsdsdsdsddfda-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd-sdsdsdsdsddfd';//销售订单号
        arg5.sale_hid = '2';//销售订单主表ID
    	arg5.corpcode = 'CP-002';//公司编码
        arg5.corpname = '成都市第一人民医院';//公司名称
        arg5.custcode = 'AN.0002';//客户编码
        arg5.custname = '成都市第一人民医院';//客户名称
    	arg5.currtypename = 'RMB';//币种
    	arg5.saledate = '2fdfd';//订单日期
    	arg5.deptname = '销售二部';//部门
        arg5.ywyname = '李四东';//业务员
        arg5.shaddr = '成都市二环中二段66号';//收货地址
        arg5.kpdw = '终端客户';//开票单位
        arg5.skxy = '货到付款';//收款协议
        arg5.zdkh = '终端客户';//终端客户
    	//从表数据
        arg5.sale_bid = '5';//销售订单从表ID
        arg5.invcode = 'P-0002';//存货编码
        arg5.invname = '尿有形成份检测稀释液UPS-2';//存货名称
        arg5.invdm = 'P98734';//存货代码
        arg5.pzwh = 'gfff';//批准文号
        arg5.nnum = 'dsds';//数量
        arg5.noriginalcurtaxprice = 'sds';//原币含税单价
        arg5.noriginalcursummny = 'dsd';//原币价税合计
        arg5.noriginalcurprice = 'sds';//原币无税单价
        arg5.noriginalcurmny = 'dss';//原币无税金额
		arg5.ts = '2017-01-01 14:32:23';
		args.add(arg5);

        UpsertOrderREST.upsertOrder(args);

		Test.stopTest();
    }
}